<template>
  <div>
    <!-- 占位组件容器 -->
  </div>
</template>

<script>
// 所有带有aria-hidden="true"的元素内部的可聚焦元素应该设置tabindex="-1"
// 下面是添加的全局指令来解决这个问题
export default {
  install(app) {
    // 添加全局指令v-fix-aria-hidden，解决aria-hidden问题
    app.directive('fix-aria-hidden', {
      mounted(el) {
        if (el.hasAttribute('aria-hidden') && el.getAttribute('aria-hidden') === 'true') {
          const focusableElements = el.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
          focusableElements.forEach(element => {
            element.setAttribute('tabindex', '-1');
          });
        }
      },
      updated(el) {
        if (el.hasAttribute('aria-hidden') && el.getAttribute('aria-hidden') === 'true') {
          const focusableElements = el.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
          focusableElements.forEach(element => {
            element.setAttribute('tabindex', '-1');
          });
        } else {
          // 恢复之前设置的tabindex
          const elementsWithTabIndex = el.querySelectorAll('[tabindex="-1"]');
          elementsWithTabIndex.forEach(element => {
            // 只有当没有data-original-tabindex属性时才恢复
            if (!element.hasAttribute('data-original-tabindex')) {
              element.removeAttribute('tabindex');
            } else {
              element.setAttribute('tabindex', element.getAttribute('data-original-tabindex'));
              element.removeAttribute('data-original-tabindex');
            }
          });
        }
      }
    });
    
    // ... existing code ...
  }
}
</script> 